import sys

# 直接复用Pipeline实例
sys.path.append("./")
pipeline = __import__("02-text-classification")

import gradio as gr


# 定义分类函数
def classify_text(text):
    # 使用Pipeline进行分类
    result = pipeline.nlp(text)

    # 提取分类标签和置信度
    label = result[0]['label']
    score = result[0]['score']

    # 返回格式化后的结果
    return f"分类结果: {label}, 置信度: {score:.4f}"


# 创建Gradio界面
with gr.Blocks() as demo:
    gr.Markdown("# 文本分类器")
    gr.Markdown(
        "这是一个基于Transformers框架的情感分析工具。您可以输入任意文本，点击“提交”按钮后，系统将自动判断其情感倾向（正面或负面）。")

    with gr.Row():
        input_text = gr.Textbox(placeholder="请输入要分类的文本...", label="输入文本")

    with gr.Row():
        submit_button = gr.Button("提交")

    with gr.Row():
        output_label = gr.Label(label="分类结果")

    # 设置按钮点击事件，触发分类函数
    submit_button.click(classify_text, inputs=input_text, outputs=output_label)

# 启动Gradio应用
if __name__ == "__main__":
    demo.launch()
